Kobe University Advent Calendar 2016の18日目です。
前回書こうとしてやめた話を書きます。実は時間がなくて完成してないので(1)としています。
内容
- 基板を設計する
- 基板を発注する
- 基板に実装する
- プログラムを書く(次回?)
基板を設計する
有名なツールはEAGLE、KiCadなど。他にもユニバーサル基板用のPasS、RSが作っているDesignSpark PCBなどがある。
EAGLEは商用ソフトで、無料版には基板サイズなどの制限がある。と言っても、趣味勢が作るような小さなものなら大体は問題なく作れる。よく使われるパーツは大体ライブラリが作られてその辺で公開されており、EAGLEはかつてはデファクトスタンダードだったと自分は認識している。
KiCadはオープンソースで最近はやりな感じがある。EAGLEのライブラリをimportできるのでライブラリも大体はその辺からとってこられる。ちゃんと調べてないけど、今から始めるならとりあえずKiCad使えという感じがする。もちろんEAGLEのような制限はない。
Arduino互換機として作る
ArduinoIDEで(苦労なく)利用できるArduino互換基板として設計する場合、プログラムの書き込みの部分が重要。
Arduinoの書き込みはシリアル通信のRX, TXのほか、DTRを使って行われる。DTRはマイコンのリセットピンに繋がっており、hackな感じの使い方がされている。 詳細はここのサイトなど参照。
とりあえず、DTRに0.1uFかませてリセットに繋いでおけば良い。ネットで検索すると出てくるリセットから電源へのダイオードは、安定性は別としてなくても動く。
マイコンの回路を作る場合、RX, TXはデバッグ用に出しておくだろうから、それに加えてリセットに0.1uf挟んだピンを出しておけば、USBシリアル変換回路を使ってArduinoIDEから使えるということ。
その他の注意としては、マイコン、発振子の周波数はArduino既製品のどれかに合わせること。ブートローダーが自分でコンパイルできれば合ってなくても問題はないが、合わせておけばArduinoIDEから直接ブートローダを書き込める(書き込み器は必要)。また、Arduinoのライブラリを使う場合はライブラリ内で使うタイマーの関係でPWM出力に制限が出てきたりするので事前に調べておいて、使用するピン等を決めた方が良い。
ArduinoIDEから使用する場合、ArduinoUnoなど自分のボードのマイコン・周波数にあう既存ボードを選択すれば良いが、自分のボードをArduinoIDEに登録することも可能。ArduinoIDE内のファイルをコピーしてちょこちょこ書き換えるとできる。どこかのサイトを参考にした気がするがさっき検索したところ良いサイトが見つからない。ArduinoIDEのホームページ探すと英語だけどありそうな気がする(別記事で書くべきか?)。さらに、ボード情報をネットに上げておいて、ボードマネージャから追加・更新というのも可能。ArduinoIDEは結構自由度が高い。この辺りを見ると良さそう。
今年設計した基板たちを並べておく。ノイズ対策とか適当で晒すほどのものではない感じがあるが。
シリアル変換icを搭載していないタイプ
シリアル変換icを搭載したタイプ
発注する
あれこれして基板が設計できたとする。基板を作る方法は手軽なものならアイロンプリント法、感光基板で作る方法、加工機で作る方法、発注などがある自分は。昔はアイロンプリントしていたが、穴を開けるのが結構面倒だった。おすすめは発注。
発注は海外業者に頼むのが一般的。どこがいいかは結構頻繁に変わるようだが、自分はelecrowを使っている。日本語サイトならswitch science pcbが安い(海外のseeedstudioの代理をしているだけっぽいので安さ重視なら直接海外に頼めば良い)。
価格はサイズによるが、50mm x 100mm までで10枚(同一基板)作ってくれて、$10 + 送料$5~くらい。重さによって送料が変わってくるが、為替等考えても2000円以内くらいで作れる。安い。ちなみに、頼んだ枚数より1、2枚余分に入っていることが多い。
問題としては手元に届くのに2週間くらいかかることくらい。お金を積んで運送業者を変えればもっと早く届く。
作る
作る際に必要な部品は秋月電子、RSオンライン等で買えば良いが、amazon, ebay, AliExpressなどで安く大量のパーツが買えたりもする(自分はその手の部品は買ったことがないのでまともなものが送られてくるかは知らない)。
作る際、はんだごては温度調整付きのものの方がbetter。半田付けは練習あるのみという感じ。
上で紹介したボードの完成写真
設計ミスは力技でなんとかするのが一般的。
かわいいアニメキャラ的なのをプリントするのが良いのだろうけど、そういうのに疎い(し、やったら真面目な方々から怒られそうな)ので某団体のロゴを突っ込んでおいた。こういうのを結構綺麗に入れられるのも発注の強み・楽しみ。
力尽きたので今日はこの辺りにしておく。
やろうとしていたのは、上で載せた大きい方のボードを使って、下のようなよくある車を動かす!という話。動かすのは一瞬で、動かすプログラムは書いたのだけど、制御画面なるものをelectronで作ろうとして、cssに凝りすぎて消耗したので放置している…。今年中に(2)を書きたい。